import dotenv from 'dotenv';
import { telegramService, TelegramNotificationData } from '../src/services/telegramService';

// 加载环境变量
dotenv.config();

async function testTelegramBot() {
  console.log('🤖 开始测试Telegram Bot功能...\n');

  // 1. 检查配置
  console.log('1. 检查Telegram配置状态:');
  const isConfigured = telegramService.isConfigured();
  console.log(`   - 配置状态: ${isConfigured ? '✅ 已配置' : '❌ 未配置'}`);
  console.log(`   - Bot Token: ${process.env.TELEGRAM_BOT_TOKEN ? '✅ 已设置' : '❌ 未设置'}`);
  console.log(`   - Chat ID: ${process.env.TELEGRAM_CHAT_ID ? '✅ 已设置' : '❌ 未设置'}`);
  console.log(`   - 商户ID: ${process.env.TELEGRAM_MERCHANT_ID || '未设置'}`);
  console.log(`   - 密钥: ${process.env.TELEGRAM_SECRET_KEY ? '✅ 已设置' : '❌ 未设置'}`);
  console.log();

  if (!process.env.TELEGRAM_BOT_TOKEN) {
    console.log('❌ 测试终止: 缺少 TELEGRAM_BOT_TOKEN 配置');
    return;
  }

  try {
    // 2. 获取Bot信息
    console.log('2. 获取Bot信息:');
    const botInfo = await telegramService.getBotInfo();
    console.log(`   - Bot ID: ${botInfo.id}`);
    console.log(`   - Bot 用户名: @${botInfo.username}`);
    console.log(`   - Bot 名称: ${botInfo.first_name}`);
    console.log(`   - 是否为Bot: ${botInfo.is_bot ? '✅' : '❌'}`);
    console.log();

    // 3. 发送测试消息（如果配置了Chat ID）
    if (process.env.TELEGRAM_CHAT_ID) {
      console.log('3. 发送测试消息:');
      const testSent = await telegramService.sendTestMessage();
      console.log(`   - 测试消息发送: ${testSent ? '✅ 成功' : '❌ 失败'}`);
      console.log();

      // 4. 模拟充值成功通知
      console.log('4. 模拟充值成功通知:');
      const mockRechargeData: TelegramNotificationData = {
        orderId: 'TEST_' + Date.now(),
        amount: 550,
        userId: 123456,
        paymentChannel: 'TOPPAY',
        status: 'COMPLETED',
        timestamp: new Date(),
        merchantId: process.env.TELEGRAM_MERCHANT_ID || 'DL79175852939219'
      };

      const notificationSent = await telegramService.sendRechargeNotification(mockRechargeData);
      console.log(`   - 充值通知发送: ${notificationSent ? '✅ 成功' : '❌ 失败'}`);
      console.log(`   - 订单号: ${mockRechargeData.orderId}`);
      console.log(`   - 金额: ${mockRechargeData.amount} THB`);
      console.log(`   - 用户ID: ${mockRechargeData.userId}`);
      console.log();
    } else {
      console.log('3. ⚠️  跳过消息发送测试: 未配置 TELEGRAM_CHAT_ID');
      console.log('   请设置环境变量 TELEGRAM_CHAT_ID 为目标群组或频道的ID');
      console.log('   获取Chat ID的方法:');
      console.log('   - 将Bot添加到群组/频道');
      console.log('   - 发送消息给 @JsonDumpBot 或 @userinfobot');
      console.log('   - 从返回结果中找到 chat.id 字段');
      console.log();
    }

    console.log('✅ Telegram Bot测试完成!');

  } catch (error) {
    console.error('❌ 测试过程中发生错误:', error);
  }
}

// 运行测试
testTelegramBot().catch(console.error);